Package dao

Source Code of dao.JdbcMessageDaoImpl

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;

import util.Util;

import dom.MessageDO;

public final class JdbcMessageDaoImpl implements MessageDao {

    public MessageDO getMessageById(String messageId) {
    String query = "select * from Message where messageId = ?";
    Connection con = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
      try {
        con = Util.getConnection();
        ps = con.prepareStatement(query);
        ps.setString(1, messageId);
        rs = ps.executeQuery();
        MessageDO message = null;
        if (rs.next()) {
          message = new MessageDO();
          message.setMessageId(messageId);
          message.setMessageKey(rs.getBytes("messageKey"));
          message.setPrvKey(rs.getBytes("prvKey"));
          message.setfromMail(rs.getString("fromMail"));
          message.settoMail(rs.getString("toMail"));       
          message.setQuestion(rs.getString("question"));
          message.setAnswer(rs.getBytes("answer"));
          message.setExpired(rs.getBoolean("expired"));
          message.setTimeToLive(rs.getTimestamp("timeToLive"));
          }
         return message;
        }
      catch (SQLException e) {e.printStackTrace();}
      finally {
        if (rs != null) {
          try {
            rs.close();
          } catch (SQLException e) {e.printStackTrace();}
          }
        if (con != null) {
          try {
          con.close();
          }
          catch (SQLException e) {e.printStackTrace();}
          }
    }
    return null;
  }

public String getQuestion(String messageId) {
    String query = "select * from Message where messageId = ?";
    Connection con = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    try {
      con = Util.getConnection();
      ps = con.prepareStatement(query);
      ps.setString(1, messageId);
      ResultSet resultSet = ps.executeQuery();
      if (resultSet.next()){
        return resultSet.getString("question");
        }
      }
    catch (SQLException e) {e.printStackTrace();}
    finally {
      if (rs != null) {
        try {
          rs.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      }
      if (con != null) {
        try {
          con.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      }
    }
    return null;
  }

  public void store(String messageId, byte[] encryptedPrivateKey, byte[] encryptedMessageKey, String fromMail, String toMail, String question, byte[] hashedAnswer, Timestamp timeToLive) {
    // check if user exists in database
    String query = "INSERT INTO Message (messageId, prvKey, messageKey, fromMail, toMail, question, answer, expired, timeToLive) VALUES (?, ?, ?, ?, ?, ?, ?, false, ?)";
    Connection con = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    try {
      con = Util.getConnection();
      ps = con.prepareStatement(query);
      ps.setString(1, messageId);
      ps.setBytes(2, encryptedPrivateKey);
      ps.setBytes(3, encryptedMessageKey);
      ps.setString(4, fromMail);
      ps.setString(5, toMail);
      ps.setString(6, question);
      ps.setBytes(7, hashedAnswer);
      ps.setTimestamp(8, timeToLive);
      ps.executeUpdate();
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      if (rs != null) {
        try {
          rs.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      }
      if (con != null) {
        try {
          con.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      }
    }
  }

  public void update(MessageDO message) {
    // check if user exists in database
    String query = "UPDATE Message SET expired = ? and timeToLive = ? where messageId = ?";
    Connection con = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    try {
      con = Util.getConnection();
      ps = con.prepareStatement(query);
      ps.setBoolean(1, message.isExpired());
      ps.setTimestamp(2, message.getTimeToLive());
      ps.setString(3, message.getMessageId());
      ps.executeUpdate();
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      if (rs != null) {
        try {
          rs.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      }
      if (con != null) {
        try {
          con.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      }
    }

  }
}
TOP

Related Classes of dao.JdbcMessageDaoImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.